package charger;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.StringTokenizer;

import com.sun.xml.internal.bind.v2.runtime.RuntimeUtil.ToStringAdapter;

import donnee.Revue;

public class Relation {

	private final static Relation instance = new Relation();

	public static Relation getInstance() {
		return instance;
	}

	private HashMap<String, HashMap<String, List<Revue>>> utilisatuer;

	public Relation() {
		utilisatuer = new HashMap<>();

	}

	public HashMap<String, HashMap<String, List<Revue>>> getUtilisatuer() {
		return utilisatuer;
	}

	// lecture du fichier texte
	public void lireRelation(String fichier) throws IOException {

		InputStream ips = new FileInputStream(fichier);
		InputStreamReader ipsr = new InputStreamReader(ips);
		BufferedReader br = new BufferedReader(ipsr);

		String ligne;

		while ((ligne = br.readLine()) != null) {

			Revue r = setIdBierre(ligne);
			String id_biere = r.getBierre();
			
			ligne = br.readLine();
			StringTokenizer chaine = new StringTokenizer(ligne, " ");
			chaine.nextToken();
			String id_utilisateur = chaine.nextToken();
			
			HashMap<String, List<Revue>> biere = new HashMap<>();
			biere.put(id_biere, new LinkedList<Revue>());
			
			
			if (!utilisatuer.containsKey(id_utilisateur))
				utilisatuer.put(id_utilisateur, biere);
			
			List<Revue> revues_utilisateur = biere.get(id_biere);
			revues_utilisateur.add(r);
			
		}

		br.close();
	}

	private Revue setIdBierre(String chaine) {
		StringTokenizer ligne = new StringTokenizer(chaine, " ");
		String id_revue = ligne.nextToken();
		String id_bierre = ligne.nextToken();

		Revue r = Input.getInstance().getRevue(id_revue);
		r.setBierre(id_bierre);
		return r;
	}



	

}
